招生考试网
学历类| 阳光高考 美术高考 研究生 自考 成人高考 专升本 中考会考 外语类| 四 六 级 职称英语 商务英语 公共英语 日语能力
资格类| 公 务 员 报 关 员 银行从业 司法考试 导 游 证 教师资格 财会类| 会 计 证 经 济 师 会计职称 注册会计 税 务 师
工程类| 一级建造 二级建造 造 价 师 造 价 员 咨 询 师 监 理 师 医学类| 卫生资格 执业医师 执业药师 执业护士 国际护士
计算机| 等级考试 软件水平 应用能力 其它类| 论文 驾照考试 书法等级 少儿英语 报检员 单证员 教案 专题 考试资讯 文档
 3773考试网 - 计算机等级考试 - 模拟试题 - 正文

2014年3月全国计算机二级C语言上机模拟试题三之1

来源:2exam.com 2013-10-30
2014年3月全国计算机二级C语言上机模拟试题三之1
 程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所 指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其它学 生的数据不变。 

  请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 

  注意:源程序存放在考生文件夹下的BLANK1.C中。 

  不得增行或删行,也不得更改程序的结构! 

  给定源程序: 

  #include <stdio.h> 

  #define N 5 

  typedef struct student { 

  long sno; 

  char name[10]; 

  float score[3]; 

  } STU; 

  void fun(char *filename, STU n) 

  { FILE *fp; 

  fp = fopen(__1__, "rb+"); 

  fseek(__2__, -1L*sizeof(STU), SEEK_END); 

  fwrite(&n, sizeof(STU), 1, __3__); 

  fclose(fp); 

  } 

  main() 

  { STU t[N]={ {10001,"MaChao", 91, 92, 77}, {10002,"CaoKai", 75, 60, 88}, 

  {10003,"LiSi", 85, 70, 78}, {10004,"FangFang", 90, 82, 87}, 

  {10005,"ZhangSan", 95, 80, 88}}; 

  STU n={10006,"ZhaoSi", 55, 70, 68}, ss[N]; 

  int i,j; FILE *fp; 

  fp = fopen("student.dat", "wb"); 

  fwrite(t, sizeof(STU), N, fp); 

  fclose(fp); 

  fp = fopen("student.dat", "rb"); 

  fread(ss, sizeof(STU), N, fp); 

  fclose(fp); 

  printf("\nThe original data :\n\n"); 

  for (j=0; j<N; j++) 

  { printf("\nNo: %ld Name: %-8s Scores: ",ss[j].sno, ss[j].name); 

  for (i=0; i<3; i++) printf("%6.2f ", ss[j].score[i]); 

  printf("\n"); 

  } 

  fun("student.dat", n); 

  printf("\nThe data after modifing :\n\n"); 

  fp = fopen("student.dat", "rb"); 

  fread(ss, sizeof(STU), N, fp); 

  fclose(fp); 

  for (j=0; j<N; j++) 

  { printf("\nNo: %ld Name: %-8s Scores: ",ss[j].sno, ss[j].name); 

  for (i=0; i<3; i++) printf("%6.2f ", ss[j].score[i]); 

  printf("\n"); 

  } 

  } 

  解题思路: 

  本题是考察如何从文件中读出数据,再把结构中的数据写入文件中。 

  第一处:从指定的文件中读出数据,所以应填:filename。 

  第二处:读取文件fp的最后一条记录,所以应填:fp。 

  第三处:再把读出的记录,写入文件fp指定的位置上,所以应填:fp。 

  *************************************************** 

  给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表, 并为各结点数据域赋0到m-1的值。 

  请改正函数Creatlink中指定部位的错误, 使它能得出正确的结果。 

  注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!

  • 上一个文章:
  • 网站版权与免责声明
    ①由于各方面情况的不断调整与变化,本网所提供的相关信息请以权威部门公布的正式信息为准.
    ②本网转载的文/图等稿件出于非商业性目的,如转载稿涉及版权等问题,请在两周内来电联系.
    最新文章

    报名考试全国   黑龙江   吉林   辽宁   内蒙古   青海   宁夏   甘肃   新疆   陕西   西藏   北京   天津   河北   山东   江苏   安徽   河南
    上海   浙江   福建   广东   山西   湖南   湖北   江西   广西   海南   云南   贵州   四川   重庆
    分省高校计算机考试黑龙江   吉林   辽宁   内蒙古   河北   北京   天津   新疆   甘肃   宁夏   青海   陕西   山西   河南   山东   江苏   安徽   浙江
    福建   广东   海南   广西   江西   湖北   湖南   四川   上海   重庆   贵州   云南   西藏
    成绩查询
    报考指南
    试题答案
    模拟试题
    考试辅导计算机一级   计算机二级   计算机三级   计算机四级
    经验交流
    高校计算机

    | 关于我们 | 联系我们 | 版权申明 | 网站导航 |
    琼ICP备12003406号